import { defineStore } from "pinia";
import { ref } from "vue";

// // 定义 Store
// export const useMemberStore = defineStore(
//   "member",
//   () => {
//     // 会员信息
//     const userinfo = ref({
//       username: "未登录",
//       default_img: "/static/logo.png",
//       token: "",
//       phone: "",
//       email: "",
//       avatar: "",
//       id: "",
//     });

//     // 设置登录信息
//     const setuserinfo = (val: any) => {
//       userinfo.value = val;
//       console.log("val", val);
//     };

//     // 清理会员信息，退出时使用
//     const clearProfile = () => {
//       userinfo.value = {
//         username: "未登录",
//         default_img: "/static/logo.png",
//         token: "",
//         phone: "",
//         email: "",
//         avatar: "",
//         id: "",
//       };
//     };

//     // 记得 return
//     return {
//       userinfo,
//       setuserinfo,
//       clearProfile,
//     };
//   },
//   {
//     // 网页端配置

//     // #ifdef H5
//     // persist: true,
//     // #endif

//     // #ifdef MP-WEIXIN
//     // 小程序端配置
//     persist: {
//       storage: {
//         getItem(key) {
//           return uni.getStorageSync(key);
//         },
//         setItem(key, value) {
//           uni.setStorageSync(key, value);
//         },
//       },
//     },
//     // #endif
//   }
// );

export const useMemberStore = defineStore({
  id: "member",
  state: () => ({
    userinfo: {
      username: "未登录",
      default_img: "/static/logo.png",
      token: "",
      phone: "",
      email: "",
      avatar: "",
      id: "",
      tokenTime: 0,
    },
  }),
  actions: {
    setuserinfo(val: any) {
      // this.userinfo = val;
      this.userinfo = {
        ...val,
        tokenTime: Date.now(), // 当前时间戳，表示token的更新时间
      };
    },
    clearProfile() {
      this.userinfo = {
        username: "未登录",
        default_img: "/static/logo.png",
        token: "",
        phone: "",
        email: "",
        avatar: "",
        id: "",
        tokenTime: 0,
      };
    },
    checkTokenExpired() {
      const now = Date.now();
      // const expireTime = 10 * 1000; // 10秒，单位毫秒
      const expireTime = 20 * 60 * 60 * 1000; // 24小时
      if (this.userinfo.token && now - this.userinfo.tokenTime > expireTime) {
        this.clearProfile();
      }
    },
  },
  persist: {
    key: "member",
    storage: {
      getItem: uni.getStorageSync,
      setItem: uni.setStorageSync,
    },
    // storage: {
    //   getItem: (key) => uni.getStorageSync(key),
    //   setItem: (key, value) => uni.setStorageSync(key, value),
    // },
  },
});
